Systems and methods for improving reception of data in wireless communication environments

ABSTRACT

Generally described, the disclosed subject matter is directed to improving the reception of data in wireless communication environments. In accordance with one embodiment, a method is provided for improving the reception of meter data in an AMR system. In particular, the method includes obtaining a sample of data indicative of channel quality for each transmission channel in the operational frequency band of the endpoint device. Then, the data is analyzed and a determination is made as to whether the reception of data by the collection system can be improved. If the reception of data by the collection system can be improved, a command is generated for reprogramming the endpoint device. In one embodiment, the command includes channel reprogramming data for reprogramming the endpoint device.

BACKGROUND

Historically the meter readings of the consumption of utility resourcessuch as water, gas, or electricity has been accomplished manually byhuman meter readers at the customers' premises. The relatively recentadvances in this area include collection of data by telephone lines,radio transmission, walk-by, or drive-by reading systems using radiocommunications between the meters and the meter reading devices.Although some of these methods require close physical proximity to themeters, they have become more desirable than the manual reading andrecording of the consumption levels. Over the last few years, there hasbeen a concerted effort to automate meter reading by installing fixednetworks that allow data to flow from the meter to a host computersystem without human intervention. These systems are referred to in theart as Automated Meter Reading (AMR) systems.

An AMR system consists of three basic components: anEncoder-Receiver-Transmitter (ERT); a Data Collection Unit (DCU); and anAMR computing system. The ERT is a meter interface device attached tothe meter, which either periodically transmits utility consumption data(“bubble-up” ERTs), or receives a “wake up” polling signal or a requestfor their meter information from the DCU (e.g., a fixed transceiverunit, a transceiver mounted in a passing vehicle, a handheld unit, etc.)The ERT, either periodically or in response to a wake-up signal,broadcasts the meter number, the meter reading, and other information tothe DCU. The DCU collects the information from the ERTs for subsequentretransmission to the AMR computing system. The AMR computing systemreceives the newly collected meter readings and updates the appropriateaccounts of the billing system.

The ERTs typically communicate with the DCU via wireless spread-spectrummodulation protocols, such as direct-sequence spread-spectrum (DSSS) andfrequency-hopping spread-spectrum (FHSS). DSSS combines a data signal atthe ERT with a higher data-rate bit sequence, sometimes called a“chipping code” or “processing gain” A high processing gain increasesthe signal's resistance to interference. FHSS, on the other hand,operates by taking the data signal and modulating it with a carriersignal that hops from frequency to frequency as a function of time overa wide band of frequencies. With FHSS, the carrier frequency changesperiodically, and therefore, potentially reduces interference since aninterfering signal from a narrowband system will only affect thespread-spectrum signal if both are transmitting at the same frequencyand at the same time.

However, in the FHSS systems described above, interference from varioussources, such as geographical obstructions, unlicensed radios, portablephones, and the like, decrease the probability that transmissions willbe received.

SUMMARY

This summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This summary is not intended to identify key features ofthe claimed subject matter, nor is it intended to be used as an aid indetermining the scope of the claimed subject matter.

Generally described, the disclosed subject matter is directed toimproving the reception of data in a wireless communication environment,such as an AMR environment. The environment includes an endpoint devicehaving a plurality of transmission channels within an operationalfrequency band, a collection system, and a host computing system. Inaccordance with one embodiment, a method is provided for improving thereception of data transmitted from the endpoint device. In accordancewith this embodiment, the method includes obtaining a sample of dataindicative of channel quality for each transmission channel in theoperational frequency band of the endpoint device. Then, the data isanalyzed and a determination is made as to whether the reception of databy the collection system can be improved. If the reception of data bythe collection system can be improved, a command is generated forreprogramming the endpoint device. In one embodiment, the commandincludes channel reprogramming data for reprogramming the endpointdevice.

DESCRIPTION OF THE DRAWINGS

The foregoing aspects and many of the attendant advantages of thisinvention will become more readily appreciated as the same become betterunderstood by reference to the following detailed description, whentaken in conjunction with the accompanying drawings, wherein:

FIG. 1 is a block diagram depicting an illustrative meter reading systemformed in accordance with an embodiment of the disclosed subject matter;

FIG. 2 is a block diagram depicting components of one example of anendpoint device formed in accordance with an embodiment of the disclosedsubject matter;

FIG. 3 is a block diagram depicting components of one example of a cellcollector unit (CCU) formed in accordance with an embodiment of thedisclosed subject matter;

FIG. 4 is a block diagram depicting components of one example of a hostcomputing system formed in accordance with an embodiment of thedisclosed subject matter;

FIG. 5 is a flow diagram of one example of a channel quality analysisroutine in accordance with an embodiment of the disclosed subjectmatter; and

FIG. 6 is a flow diagram of one example of a channel reprogrammingroutine in accordance with an embodiment of the disclosed subjectmatter.

FIG. 7 is an example of a graph depicting channel quality data inaccordance with an embodiment of the disclosed subject matter;

FIG. 8 is a schematic depicting one example of a frequency hopping tablein accordance with an embodiment of the disclosed subject matter; and

FIG. 9 is a schematic depicting another example of a frequency hoppingtable in accordance with an embodiment of the disclosed subject matter.

DETAILED DESCRIPTION

The detailed description set forth below in connection with the appendeddrawings where like numerals reference like elements is intended as adescription of various embodiments of the disclosed subject matter andis not intended to represent the only embodiments. Each embodimentdescribed in this disclosure is provided merely as an example orillustration and should not be construed as preferred or advantageousover other embodiments. In this regard, the following description firstprovides a general description of a meter reading system in which thedisclosed subject matter may be implemented. Then, exemplary routinesthat provide improved data reception are described. The illustrativeexamples provided herein are not intended to be exhaustive or to limitthe invention to the precise forms disclosed. Similarly, any stepsdescribed herein may be interchangeable with other steps, orcombinations of steps, in order to achieve the same or substantiallysimilar result.

Although not required, several aspects of the present disclosure aredescribed in the general context of computer-executable instructions,such as routines executed by a general-purpose computer (e.g., a servercomputer, wireless device, or personal/laptop computer). Those skilledin the relevant art will appreciate that aspects of the presentdisclosure can be practiced with other communications, data processing,or computer system configurations, including Internet appliances,hand-held devices (including personal digital assistants (PDAs)),wearable computers, cellular or mobile phones, embedded computers(including those coupled to vehicles), programmable consumerelectronics, set-top boxes, network PCs, mini-computers, mainframecomputers, and the like.

Several aspects of the present disclosure can be embodied in a specialpurpose computer or data processor that is specifically programmed,configured, or constructed to perform one or more of thecomputer-executable instructions explained in detail herein. Severalaspects of the present disclosure can also be practiced in distributedcomputing environments where tasks or modules are performed by remoteprocessing devices, which may be linked through a communication network.In a distributed computing environment, program modules may be locatedin both local and remote memory storage devices.

Aspects of the present disclosure may be stored or distributed oncomputer-readable media. As used herein, the term “computer-readablemedia” includes volatile and non-volatile, removable and non-removablememory implemented in a method or technology capable of storinginformation, such as computer readable instructions, data structures,program modules, and other data. Examples of computer readable mediainclude but are not limited to magnetically or optically readablecomputer disks, as microcode on semiconductor memory, nanotechnologymemory, organic or optical memory, or other portable data storage media.Indeed, computer-implemented instructions, data structures, and otherdata under aspects of the present disclosure may be distributed over theInternet or over other networks (including wireless networks), on apropagated signal on a propagation medium (e.g., an electromagneticwave(s), a sound wave, etc.) over a period of time, or may be providedon any analog or digital network (packet switched, circuit switched, orother scheme).

Referring now to FIG. 1, the following is intended to provide a generaldescription of one embodiment of a communication system, such as a meterreading system 100, in which aspects of the present disclosure may beimplemented. In one embodiment, the meter reading system 100 may be anautomated meter reading (AMR) system that reads and monitors utilitymeters from a remote location, typically using a collection systemcomprised of fixed collection units, mobile collection units, handheldreader units, mesh/micro networks, etc.

Generally described, the meter reading system 100 depicted in FIG. 1includes a plurality of endpoint devices 102, a collection system 106,and a host computing system 110. The endpoint devices 102 are associatedwith, for example, utility meters UM (e.g., gas meters, water meters,electric meters, etc.), for obtaining data, such as meter data (e.g.,consumption data, tampering data, etc.) therefrom. The endpoint devices102 in the meter reading system 100 may be a wired or wirelesscommunications device capable of performing two way communications withthe collection system 106 utilizing automated meter reading protocols.For example, the endpoint devices 102 are capable of receiving data(e.g., messages, commands, etc.) from the collection system 106 andtransmitting meter data and/or other data to the collection system 106.Depending on the exact configuration and types of devices used, theendpoint devices 102 transmit meter and/or other data eitherperiodically (“bubble-up”), in response to a wake-up signal, or in acombination/hybrid configuration. In each instance, the endpoint devices102 are configured to exchange data with the collection system 106.

Still referring to FIG. 1, the collection system 106 of the meterreading system 100 collects meter data and other data from the pluralityof endpoint devices 102, processes the data, and forwards the data tothe host computing system 110 of a utility service provider 112. Thecollection system 106 may employ any number of automated meter readingprotocols and devices to communicate with the endpoint devices 102. Forexample, in the embodiment shown, the collection system 106 may includea fixed network comprised of one or more Cell Control Units 116 (“CCU116”) that collect radio-based meter readings within a particulargeographic area either directly from the endpoint devices 102, orindirectly via one or more optional repeaters 118. It will beappreciated that the collection system 106 may additionally oralternatively include mobile, handheld, and/or micro-network readers(not shown).

In the embodiment depicted in FIG. 1, the collection system 106 isconfigured to forward meter readings to the host computing system 110 ofthe utility service provider 112 over a wide area network 114, which maybe implemented utilizing TCP/IP Protocols (e.g., Internet), GPRS orother cellular-based protocols, Ethernet, WiFi, Broadband Over PowerLine, and combinations thereof, etc. In one aspect, the collectionsystem 106 serves as the bridge for transmitting data between devicesthat utilize automated meter reading protocols (e.g., the endpointdevices 102) with computers (e.g., the host computing system 110)coupled to the wide area network 114. The host computing system 110includes application logic for reading, processing, and managing thecollection of meter data. As described in further detail below, the hostcomputing system 110 is configured for analyzing a sample of collecteddata so as to determine which channels in the associated frequency bandare best suited (e.g., having lower interference) for communicationsbetween a CCU 116 and each particular endpoint device 102.

The discussion provided above with reference to FIG. 1 is intended as abrief, general description of one meter reading system 100 capable ofimplementing various features of the present disclosure. While thedescription above is made with reference to particular devices linkedtogether through different interfaces, those skilled in the art willappreciate that the claimed subject matter may be implemented in othercontexts. In this regard, the claimed subject matter may be practicedusing different types of devices and communication interfaces than thoseillustrated in FIG. 1.

Turning now to FIG. 2, there is shown one example architecture of anendpoint device 102 for use in the meter reading system 100. Eachendpoint device 102 continuously gathers and stores meter data from theassociated sensors of the utility meters. Upon request or periodically(e.g., every 30 seconds) the endpoint device 102 retrieves the storeddata, formats and/or encodes the data according to one or moreprotocols, and transmits this data with other information via radiofrequency (RF) communication links to the repeaters 118 and/or the CCUs116. The endpoint devices 102 are also capable of receiving data fromthe repeaters 118, the CCUs 116, or other RF-based communicationsdevices.

As will be described in more detail below, one embodiment of theendpoint device 102 transmits data over a preselected set of frequencychannels in a predefined frequency band (“operational frequency band”)using frequency hopping spread spectrum (FHSS) techniques. For example,in one embodiment, the endpoint device 102 may operate over apreselected set of 80 channels approximately 200 KHz in width. Oneexample of such a frequency band is the 902-918 MHz portion of the ISMfrequency band, although other portions of the ISM or other radiofrequency bands may be used. The operational frequency band may becontiguous (e.g., 902-918 MHZ) or non-contiguous (e.g., 902-908 and916-924 MHz). In this embodiment, the endpoint device 102 may frequencyhop between channels in the entire operational frequency band or mayfrequency hop between a subset of channels (e.g., fifty (50) channels)in the operational frequency band.

For carrying out the functionality described above, each endpoint device102 comprises a main computing device 130 communicatively coupled to acommunications device 132. In the example depicted in FIG. 2, thecommunications device 132 is a radio-based transceiver,transmitter-receiver, or the like that may include a communicationsantenna 140, transmit (TX) circuitry 142 and receive (RX) circuitry 144,and an antenna multiplexer 146 that switches between the transmit (TX)circuitry 142 and the receive (RX) circuitry 144 depending on the modeof operation. The transmit (TX) circuitry 142 may include variouscomponents for transmitting FHSS signals, such as a voltage controlledoscillator (VCO) 150 and a frequency synthesizer 152 for tuning the VCO150 to the proper channel and maintaining the channel under varying loadconditions. As well know in the art, the transmit (TX) circuitry 142 mayalso include various signal processing components 154, such as poweramplifiers, upconverters, filters, etc. Similarly, receive (RX)circuitry 144 may comprise, for example, one or more signal processingcomponents 158, such as filters, low noise amplifiers (LNAs),downconverters, etc. for processing the signal prior to delivery to themain computing device 130. In one embodiment, the transmit circuitryand/or receive circuitry may be implemented as an RF integrated circuit(RFIC) chip, and may comprise various components including, for example,mixers, a VCO, a frequency synthesizer, automatic gain control (AGC),passive and/or active filters, such as harmonic filters, dielectricfilters, SAW filters, etc., A/D and/or D/A converters,modulators/demodulators, PLLs, upconverters/downconverters, and/or otheranalog or digital components that process baseband signals, RF signals,or IF band signals, etc.

As briefly discussed above, the transmission/reception of the RF basedcommunication signals by the endpoint device 102 is carried out undercontrol of the main computing device 130. In the example depicted inFIG. 2, the main computing device 130 may include a processor 160, atiming clock 162, and a memory 164, connected by a communication bus166. As further depicted in FIG. 2, the main computing device 130 mayalso include an I/O interface 168 for interfacing with, for example, oneor more sensors S associated with the utility meters UM. The sensors Smay be any known sensors for obtaining consumption data, tampering data,etc. The data obtained from the sensors S are processed by the processor160 and then stored in the memory 164.

The memory 164 depicted in FIG. 2 is one example of computer-readablemedia suited to store data and program modules for implementing aspectsof the claimed subject matter. Those skilled in the art and others willrecognize that the processor 160 serves as the computational center ofthe endpoint device 102 by supporting the execution of instructions thatare available from the memory 164. In the embodiment depicted in FIG. 2,the memory 164 stores at least one frequency hopping table 174, a typeof look up table, and an endpoint device serial number 176, both ofwhich may be programmed at the factory. One example of a frequencyhopping table is schematically depicted in FIG. 8 and is set forth indetail in Table 1 below.

TABLE 1 Hop Sequence No. Channel (Center Frequency, MHz) Channel No. 1903.1 6 2 903.3 7 3 903.5 8 4 903.7 9 5 903.9 10 6 904.1 11 7 904.3 12 8904.5 13 9 904.7 14 10 904.9 15 11 905.1 16 12 905.3 17 13 905.5 18 14905.7 19 15 905.9 20 16 906.1 21 17 906.3 22 18 906.5 23 19 906.7 24 20906.9 25 21 907.1 26 22 907.3 27 23 907.5 28 24 907.7 29 25 907.9 30 26912.1 51 27 912.3 52 28 912.5 53 29 912.7 54 30 912.9 55 31 913.1 56 32913.3 57 33 913.5 58 34 913.7 59 35 913.9 60 36 913.1 61 37 914.3 62 38914.5 63 39 914.7 64 40 914.9 65 41 915.1 66 42 915.3 67 43 915.5 68 44915.7 69 45 915.9 70 46 916.1 71 47 916.3 72 48 916.5 73 49 916.7 74 50916.9 75

Referring now to Table 1 above, there is shown one example of afrequency hopping table formed in accordance with aspects of the presentdisclosure. The frequency hopping table sets forth the following: 1) HopSequence Number; 2) Channel (shown as the Center Frequency of the 200KHz channel); and 3) Channel Number. In one embodiment, as best shown inthe example of Table 1 and depicted schematically in FIG. 8, a subset offifty (50) channels are utilized over the 902-918 MHz operationalfrequency band. In the embodiment shown in FIG. 8, the subset ofchannels is split into a first block of channels 180 and a second blockof channels 182, although dividing the channels into more than twoblocks may also be practiced by the endpoint devices. It will beappreciated that any number of channels may be contained in the firstand second blocks of channels, although twenty-five (25) channels foreach block of channels 180 and 182 are shown in FIG. 5.

In one embodiment, the position of the first block of channels 180 alongthe operational frequency band of the endpoint device (e.g., 902-918MHz) is defined by a first offset. Similarly, the position of the secondblock of channels 182 is defined by a second offset. The offsets arecalculated by counting the number of channels from the lowest channel ofthe operational frequency band (i.e., 902 MHz in this example) to thebeginning of the block of channels 180 and 182. In the example shown inFIG. 8, the first offset is five (5), and the second offset is fifty(50). FIG. 9 depicts another example of a frequency hopping table, wherethe first offset is thirty (30), and the second offset is fifty-five(55), thereby forming a contiguous block of 50 channels. As will bedescribed in more detail below, each block of channels can be shifted upor down along the operational frequency band of the endpoint device inorder to improve the collection system's ability to receive datatransmitted by the endpoint device.

Returning to FIG. 2, the memory 204 also includes a reprogrammingapplication 198 having instructions suitable for being executed by theprocessor 160 for implementing aspects of the present disclosure. Inparticular, the reprogramming application 198 is configured with programlogic that allows, for example, reprogramming of the frequency hoppingtable 174 (e.g., the subset of channels) stored in memory 164 andaccessed by the processor 160 for directing the communications device132 to transmit data to the collection system 106 over one or more FHSSsignals. For example, in one embodiment, the program logic, in responseto a command received from the system 100, shifts the first block ofchannels 180 and/or the second block of channels 182 within thepredefined operational frequency band (e.g., 80 channels in the 902-918MHz band) from the positions shown, for example, in FIG. 8 to thepositions shown, for example, in FIG. 9 to improve data reception by thecollection system. Alternatively, in embodiments having a set offrequency hopping tables stored in memory 204, the program logic, inresponse to a command received from the system 100, selects a frequencyhopping table from the set of frequency hopping tables that is bettersuited for improving reception of data by the collection system 106. Oneembodiment of a routine implemented by the reprogramming application 198will be described in detail with reference to FIG. 6. Moreover, thegeneration of the command will be described in more detail below withreference to FIG. 5.

The processor 160 has the responsibilities within the endpoint device102 of overall system timing and supervision including accumulating andstoring sensor data, maintaining the position in the hop sequence,storing reprogrammed frequency hopping data, and providing data, such asa message, to be transmitted and selecting the frequency channel thedata will be transmitted over. In one embodiment, the processor 160effectuates the formatting or encoding of the meter data and other datain any standard format or protocol. In this regard, meter data in oneembodiment are formatted as “packetized” data by the endpoint device 102for transmission over the network. In the present application, the term“packetized” is intended to encompass packets, frames, cells, messagesor any other method used to encapsulate data for network transmission.As understood in the art, packets typically maintain a plurality offields as well as a preamble and trailer to identify the beginning andend of the packet. The packet may be formatted as an Interval DataMessage (“IDM”), a standard consumption message (“SCM”), or other datapacket formats utilized in an AMR environment. In one embodiment,packets formatted as IDM's are transmitted from the endpoint device 102at regular intervals. The IDM packetized data maintains fields includingan endpoint serial number field, a consumption data field, a cyclicredundancy check (CRC) field, and the like. It will be appreciated thatthe endpoint devices 102 may support multiple message types, allowing anentirely different message or packet format structure to be used.

The processor 160 further effects the transmission of the encoded orformatted data and the frequency channel upon which to send the messageto the communications device 132. In this regard, the processor 160 setsthe frequency synthesizer 152 to the proper frequency through monitoringof the VCO 150, for example, via a low pass filter and modulation adjustcircuitry (not shown). The data is then transmitted as afrequency-hopping spread-spectrum (FHSS) signal 192 (see FIG. 1) at afrequency and time selected in accordance with a frequency hoppingtable, such as frequency hopping table 174 stored in memory 164. Forexample, in one embodiment, using the frequency hopping table 174 ofFIG. 8 (and set forth in TABLE 1 above), the endpoint device 102sequentially transmits FHSS signals through a programmed subset of fifty(50) frequency channels, within the operational frequency band.

In some embodiments where the FHSS signals 190 are transmitted over asubset of channels in the operational frequency band of 902-918 MHz, theendpoint devices 102 use unlicensed frequency-hopping spread-spectrumcommunication devices that operate in accordance with either FCC Part15.249 (transmitting power less than 1 mW) or Part 15.247 (transmittingpower less than 1 W). In one embodiment, a set of frequency hoppingtables can be programmed into the endpoint device 102 to furtherminimize collisions, which in turn, further improves RF channelutilization and efficiencies. As briefly described above and describedin more detail below, one frequency hopping table from the set offrequency hopping tables can be selected as the default table by dataincluded in a command transmitted by the collection system 106.

Returning to FIG. 1, there is shown a plurality of CCUs 116, which maybe arranged in a hierarchical network of overlapping zones of coverage,that receive data from endpoint devices 102 and forward the data byretransmission to the host computing system 110. Now with reference toFIG. 3, one example component architecture for a CCU 116 depicted inFIG. 1 will be described. Generally described, the CCU 116 includes aprocessor 300, a memory 302, and a clock 304 interconnected via one ormore buses 306. In addition, the CCU 116 includes a network interface308 comprising components for communicating with other devices over thewide area network 114 (FIG. 1), utilizing any appropriate protocol, suchas TCP/IP Protocols (e.g., Internet), GPRS or other cellular-basedprotocols, Ethernet, WiFi, Broadband Over Power Line, and combinationsthereof, etc. As further depicted in FIG. 3, the CCU 116 includes aradio-based communication device 310 for transmitting/receiving wirelesscommunications with other radio-based devices (e.g., the endpointdevices 102, repeaters 118, etc.).

In the embodiment shown in FIG. 3, the communication device 310 includesat least one transceiver, transmitter-receiver, or the like, generallydesignated 318, of half-duplex (transmit or receive but not bothsimultaneously) or full-duplex design (transmit and receivesimultaneously) that is capable of identifying, locating, and trackingFHSS signals transmitted by the endpoint devices 102. To that end, thecommunication device 310 examines the entire portion of the operationalfrequency band employed by the endpoint devices 102, looking for asignal suggestive of meter data transmitted by an endpoint device 102 orrepeater 118. In other words, the communication device 310, in effect,acts like a number of discrete radios that can each monitor a particularfrequency within the endpoint device's operating frequency band.

Once data from an endpoint device 102 is detected, the transceiver 318may employ a Fast Fourier Transform (FFT) engine 320 and digital signalprocessing via a digital signal processor (DSP) 322 to determine thenarrowband frequency on which the data is being transmitted. As such,the radio-based communications device 310 has the ability to measuretransmission characteristics, such as the signal strength levels and/ornoise/interference levels, of all channels across the endpoints'operating frequency band like a digital spectrum analyzer. The result isthat at each time interval a particular endpoint device transmits data,the CCU 116 can generate and store a “snapshot” of the measurement of,for example, signal strength and/or noise/interference levels in thefrequency channels of the FFT. It will be appreciated that theradio-based communication device 310 may alternatively or additionallyinclude an analog superheterodyne receiver stage for generating ananalog based spectrum analyzer.

The signal strength data and/or noise/interference data measured by theCCU 116, which is indicative of channel quality, can then be forwardedto the host computing system 110 for further processing and analysis. Inone embodiment, as will be described in more detail below, by analyzingthe data indicative of channel quality over time a signal strengthaverage value, a Received Signal Strength Indication (RSSI) averagevalue, a noise/interference average value, other average valuesindicative of channel quality, etc., and combinations thereof, can beobtained for each frequency channel in the endpoint device's operatingfrequency band (e.g., 902-918 MHz). Such information may then be used tochange the subset of channels employed by each endpoint device totransmit the FHSS signals.

It will be appreciated that other data indicative of channel quality canbe collected by the collection system 106 and forwarded to the hostcomputing system 110 for further processing. For example, the collectionsystem 106 can collect and store data for each channel representative ofa number of bad packets received, a ratio of bad packets received togood packets received, a ratio of preamble detections to good packetsreceived, etc.

Still referring to FIG. 3, the processor 300 then processes the meterdata and other data and stores such data in the memory 302. Theprocessed meter and other data may be parsed and re-packaged into astructured format suitable for transmission over the wide area network114 to the host computing device 110. In this regard, data from aplurality of CCUs 116 may be aggregated in a data store maintained bythe utility service provider 112. The channel quality data, such as RSSIdata, noise/interference data, read efficiency data, or other dataindicative of channel quality collected at the CCU 116 may also beforwarded to the host computing system 110 for further processing.

As stated above, data collected by the collection system 106 isforwarded using any suitable protocol to the host computing system 110for processing and storage. One embodiment of the host computing system110 is illustrated as a block diagram in FIG. 4. As shown in FIG. 4, thehost computing system 110 includes at least one computing device 402,such as a personal computer (PC). The computing device 402 includes aprocessor 404, a memory 406, an I/O device 408 suitably interconnectedvia one or more buses 414. The I/O device 408 is connected to one ormore input devices 410, such as a keyboard, touch pad, pointing device,etc., and a display 412. The memory 406 may include read only memory(ROM), random access memory (RAM), and storage memory. The storagememory and their associated computer-readable media provide non-volatilestorage of computer readable instructions, data structures, programmodules, and other data for the computing system 402.

The memory 406 stores an operating system 420 for controlling theoperation of the computing device 402. In one embodiment of the presentdisclosure, the operating system provides a graphical operatingenvironment, such as Microsoft Corporation's WINDOWS®, LINUX or Apple'sLeopard graphical operating system in which activated applicationprograms are represented as one or more graphical application windowswith a display visible to the user. The memory 406 also stores a numberof application programs 422, such as a host processing system and meterreading application(s), for processing collected meter and other data424 from the endpoints 102. Processing of such data may includedetermining consumption of a predetermined interval for billingpurposes, system reliability analysis, service outage analysis,tampering events, etc. Examples of meter reading applications 422 mayinclude one or more applications commercially available from Itron,Inc., Liberty Lake, Wash.

The memory 406 may also store a channel quality analysis application 426that analyses channel quality data 428 collected by the collectionsystem 106. In particular, the channel quality analysis application 424includes program logic that obtains a sample of channel quality datareceived from the collection system 106 and stored in memory 406,analyzes the data, and determines if reception of data by the collectionsystem 106 can be improved. If it is determined that reception of databy the collection system 106 can be improved, the channel qualityanalysis application 424 generates a command to be sent to the specificendpoint device 102 via the collection system 106 to alter the channelsof its frequency hopping table. One example routine implemented by thechannel quality analysis application 426 will be discussed in detailbelow with regard to FIG. 5.

The meter data and/or channel quality data 426 may reside in memory 406and/or on the data servers 430 accessible over a wired and/or wirelessnetwork, such as a local area network (LAN) by the computing device 402via an appropriate interface, such as a network interface 436. As knownto those skilled in the art and others, the network interface 436 of thecomputing device 402 illustrated in FIG. 4 may be configured to exchangefiles, commands, and other types of data over the wide are network 114.

Now, with reference to FIG. 5, one representative embodiment of aroutine 500, suitable for being implemented by the channel data analysisapplication 424 is provided. As depicted in FIG. 5, the routine 500begins at block 505 and proceeds to block 510. At block 510, a sample ofdata indicative of channel quality is obtained. For example, in oneembodiment, the routine 500 may obtain channel quality data (e.g.,signal strength data, RSSI data, interference/noise data, datarepresentative of a number of bad packets received, data representativeof a ratio of bad packets received to good packets received, datarepresentative of a ratio of preamble detections to good packetsreceived, etc.) collected by the collection system 106 during a standardinterval of time, e.g., 30 days, 45 days, 60 days, etc., and stored inmemory 406 or data servers 430. In some embodiments, other dataindicative of channel quality may be used.

For example, the read coefficient, a metric that quantifies the numberof meter readings successfully obtained by a CCU 116 from a particularendpoint device 102 for each operating channel, has been shown to becorrelative to signal strength and interference/noise levels. Inparticular, a high read coefficient corresponds to a high signalstrength level and a low interference/noise level, whereas a low readcoefficient corresponds to a low signal strength level and a highinterference/noise level. Since the total number of meter datatransmitted over each channel during the sample time period is known,the read coefficient may be readily generated by comparing the packetssuccessfully obtained by a CCU 116 with the total number of packetstransmitted from an endpoint device 102.

Next, at block 515, the channel quality data is analyzed to determine ifany patterns exist with regard to the set of operating channels (e.g.,the 902-918 MHz band used for the examples herein). The data may beanalyzed in any manner to determine patterns, including separately or incombination (e.g. calculating Sign to Noise Ratio (S/N), Signal toInterference plus noise (SINR), etc.). For example, geographicalobstructions may make some channels in a particular location undesirableat any time of day, and thus, time independent patterns of signalstrength, interference/noise, S/N, SINR, etc. may occur. In oneembodiment, the channel quality data is aggregated and an averagechannel quality value for each channel of the operational frequency bandis calculated. For example, FIG. 7 is a graph depicting average valuesof interference levels (measured in db) collected over the channels ofthe operational frequency band during the sample period. As you can seein the graph, channels 12-35 have experienced a greater amount ofinterference over the sample period compared to channels 1-11 and 36-80.

In other embodiments, channel quality patterns, such as interferenceand/or noise patterns, may by time dependent, as from being generated byportable phones, garage door openers, unlicensed radios, etc. In thisembodiment, data for a particular location may be analyzed at differenttimes of the day. For example, portable phones using digital modulationmay be stronger at selected times of the day, e.g., evenings, and thus,may affect the data reception at particular times during the day.

At block 520 of the routine 500, a determination is made as to whetheran improvement in the potential reception of data by the collectionsystem 106 can be obtained. In one embodiment, the default frequencyhopping table of the endpoint device and the analyzed data are used. Forexample, from the serial number data received from the meter datacollected by the collection system 106 the host computing system 110knows either the specific frequency hopping table stored in the endpointdevice's memory or whether the endpoint device is equipped with multiplefrequency hoping tables stored in its memory and which frequency hoppingtable is currently the default table. With this information, theapplication 198, for example, can compare the default channels utilizedby the endpoint device in transmitting data to the channel quality dataof each channel quantified at block 515.

In one embodiment, the comparison attempts to determine the mostappropriate channel allocation given the formatting of the frequencyhoping table (i.e., two blocks of channels, three blocks of channels,etc.). The comparison may employ one or more statistical techniques(e.g., best fit, etc.) to arrive at the channel allocation. In theexample shown in FIG. 7, the application may determine that the mostappropriate channels are between 31 and 80, which avoids the highinterference channels of between 12 and 29. As such, the routinedetermines the first and second offset values that would result in theutilization of channels 31-80 shown in FIG. 7. In this example, theroutine determines the first and second offset values as thirty (30) andfifty-five (55), respectively. In one embodiment, after the offsetvalues are determined, the routine 500 checks to see if any of thechannels from the first and second blocks of channels overlap, and ifso, corrects the channel overlap by, for example, incrementally shiftingthe first block of channels downwardly along the operation frequencyband with respect to the second block of channels until no channeloverlap exists.

Alternatively, the application can compare the default frequency hoppingtable of the endpoint device with both the analyzed data and the otherfrequency hopping tables stored in the endpoint device's memory anddetermine if a different frequency hopping table is more appropriatethan the default frequency hopping table. In any case, the channelquality data of each channel quantified at block 515 may be used tomodify the channels employed by the endpoint device for communicationwith the collection system 106. For example, the analyzed channelquality data may be used to reprogram the frequency hopping table ofFIG. 8, or alternatively, may be used to select a different frequencytable from the set of frequency hopping tables.

Next, at block 525 of the routine 500, a channel reprogramming commandis generated for a specified endpoint device to be forwarded by thecollection system 106. In one embodiment, the command includes data thatwill be used by the endpoint device to modify the channels employed bythe endpoint device for communication with the collection system 106.For example, in one embodiment, the data can include an offset value foreach block of channels 180 and 182 as a result of the determination madeat block 520. In the example described herein, the first and secondoffset values are determined to be 30 and 55, respectively, so that thefirst and second blocks of channels 180 and 182 occupy channels 30-80 ofthe operational frequency band when reprogrammed so as to avoid thechannels 12-35 as best as possible. Alternatively, for endpoint devicesthat have a set of frequency hopping channels stored in memory 164, thedata includes a table number that corresponds to a specific frequencyhopping table to be selected as the default frequency hopping table fromthe set of frequency hopping tables as a result of the determinationmade at block 520. After the command is generated, the routine proceedsto block 530, where the command is transmitted to the collection system106 or the like to be distributed to the specific endpoint device 102.The routine ends at block 535.

It should be well understood that the routine 500 described above withreference to FIG. 5 does not show all of the functions performed withinthe host computing system 110 depicted in FIG. 1. Those skilled in theart and others will recognize that some functions and/or exchanges ofdata described above may be performed in a different order,omitted/added, performed by other devices, etc., or otherwise variedwithout departing from the scope of the claimed subject matter. Forexample, the routine 500 or portions thereof may be performed by thecollection system 106. In one embodiment, the collection system 106 iscapable of generating the command based on instructions from the hostprocessing system 110. In another embodiment, some or all of theanalysis of channel quality data can be carried out by the collectionsystem 106.

The command transmitted from the host computing system 110 to thecollection system 106 is then forwarded to the specific endpoint device102. This may occur at the next “bubble-up” sequence of datatransmission from the endpoint 102, or the collection system 106 cansend a “wake-up” message in order to establish communication with theendpoint device 102. In response to the reprogramming command, theendpoint device 102 executes the reprogramming application 198, as willbe described in more detail below.

Referring now to FIG. 6, one representative embodiment of an endpointreprogramming routine 600 implemented by the application 198 will now bedescribed. Generally described, the endpoint reprogramming routine 600changes the default frequency hopping table to one that increases thecollection system's ability to receive data transmitted from theparticular endpoint device 102.

As depicted in FIG. 6, the routine 600 begins at block 605 and proceedsto block 610, where channel reprogramming data is obtained from thecommand received from the CCU 116, the repeater 118, or othercommunication device, such as a mobile transceiver, handheldtransceiver, etc. Next, at block 615, the channel reprogramming data isutilized for generating or obtaining a new frequency hopping table. Inone embodiment, the channel reprogramming data includes one or moreoffset values that are utilized to shift the first and/or second blocksof channels either up or down the operational frequency band. Forexample, in the example discussed above, the command may include firstand second offset values of 30 and 55 for the first and second blocks ofchannels 180 and 182, respectively. As a result of obtaining the firstand second offset values, the application appropriately shifts the firstand second blocks of channels 180 and 182 from the positions shown inFIG. 8, having first and second offset values of 5 and 50, respectively,to the positions shown in FIG. 9, having first and second offset valuesof 30 and 55, respectively. Alternatively, the channel reprogrammingdata includes an integer or the like that corresponds to one specificfrequency hopping table to be selected from a set of stored frequencyhopping tables stored in the memory of the endpoint device.

Returning to the example described above, once the first and secondblocks of channels 180 and 182 are moved according the obtained offsetdata, the routine 600 proceeds to decision block 620, where the firstand second blocks are checked to see if any channels overlap. If it isdetermined at decision block 620 that the channels overlap, then theroutine proceeds first to block 625, where the overlap error iscorrected using any suitable techniques. For example, the first block ofchannels can be shifted downwardly in frequency, for example, one (1)channel of the operational frequency band, away from the second block ofchannels. From block 625, the routine returns to decision block 620. Ifit is determined at decision block 620 that the channels do not overlap,then the routine proceeds to block 630. At block 630, the modified or“new” frequency hopping table is saved in memory as the defaultfrequency hopping table. The routine ends at block 635.

In another example, if it is determined at decision block 620 that thechannels overlap, then instead of proceeding to block 625 to correct theerror, the routine can reject the reprogramming change and transmit anerror message to the collection system 106. In this embodiment, afterthe message is transmitted, the routine ends at block 635.

It should be well understood that the routine 600 described above withreference to FIG. 6 does not show all of the functions performed withinthe endpoint device 102 depicted in FIG. 1. Those skilled in the art andothers will recognize that some functions and/or exchanges of datadescribed above may be performed in a different order, omitted/added,performed by separate devices, or otherwise varied without departingfrom the scope of the claimed subject matter. For example, it will beappreciated that the decision block 620 and subsequent block 625 areoptional and may either be carried out by the collection system 106, thehost computing system 110, or omitted altogether.

While illustrative embodiments have been illustrated and described, itwill be appreciated that various changes can be made therein withoutdeparting from the spirit and scope of the claimed subject matter.

1-20. (canceled)
 21. An endpoint device, comprising: a communicationdevice for receiving data and for transmitting data over an operationalfrequency band; a memory storing at least one frequency-hopping tableand frequency-hopping table reprogramming instructions; a processorcapable of executing the channel reprogramming instructions forobtaining channel reprogramming data from a command received by thecommunication device; modifying the frequency channel table inaccordance with the channel reprogramming data; and storing the modifiedfrequency channel table in the memory.
 22. The endpoint device of claim21, wherein the frequency hopping table includes first and second blocksof channels, and wherein the modification of the frequency hopping tableincludes shifting the first and/or second block of channels along theoperational frequency band.
 23. The endpoint device of claim 21, whereinthe memory stores a set of frequency hopping tables, and wherein themodification of the frequency hopping table includes selecting one ofthe frequency hopping tables from the set of frequency hopping tables.